package com.page.common.vo;

import java.io.Serializable;

/**
 * 主机信息数据对象
 * 
 * @Package com.net263.ccap.common.vo
 * @File HostVO.java
 * @author shuxin.zheng@net263.com
 * @date 2014-9-17 下午01:37:29
 */
public class HostVO implements Serializable {

    private static final long serialVersionUID = 2811139141422195951L;
    private String ip = null;
    private int port = -1;
    private int connTimeout = 6000;
    private int soTimeout = 6000;

    /**
     * 构造函数
     * 
     * @param ip {String} 服务器 IP 地址
     * @param port {int} 服务器监听端口口
     * @param timeout {int} 连接超时时间，单位：毫秒
     */
    public HostVO(String ip, int port) {
        this.ip = ip;
        this.port = port;
    }

    /**
     * 设置服务器 IP 地址，格式：192.178.1.1
     * 
     * @param ip {String}
     * @return {HostVO}
     */
    public HostVO setIP(String ip) {
        this.ip = ip;
        return this;
    }

    /**
     * 设置服务器端口号
     * 
     * @param port
     * @return {HostVO}
     */
    public HostVO setPort(int port) {
        this.port = port;
        return this;
    }

    /**
     * 设置连接远程服务器的超时时间
     * 
     * @param timeout {int} 连接超时时间，单位：毫秒
     * @return {HostVO}
     */
    public HostVO setConnectTimeout(int timeout) {
        this.connTimeout = timeout;
        return this;
    }

    /**
     * 设置网络 IO 读写超时时间
     * 
     * @param timeout {int} 读写超时时间，单位：毫秒
     * @return {HostVO}
     */
    public HostVO setSoTimeout(int timeout) {
        this.soTimeout = timeout;
        return this;
    }

    /**
     * 获得所设置的服务器 IP 地址
     * 
     * @return {String}
     */
    public String getIP() {
        return ip;
    }

    /**
     * 获得所设置的服务器端口号
     * 
     * @return {int}
     */
    public int getPort() {
        return port;
    }

    /**
     * 获得连接服务器的超时时间
     * 
     * @return {int} 连接超时时间，单位：毫秒
     */
    public int getConnectTimeout() {
        return connTimeout;
    }

    /**
     * 获得网络 IO 的读写超时时间
     * 
     * @return {int} 读写超时时间，单位：毫秒
     */
    public int getSoTimeout() {
        return soTimeout;
    }

    @Override
    public String toString() {
        return "ip=" + ip + "; port=" + port + "; connect timeout="
                + connTimeout + "; rw timeout=" + soTimeout;
    }

}
